Windows RSAT(Remote Server Administration Tools) 远程服务器管理工具

  • ~1.66K 字
  • 次阅读
  1. 1. RPC/SMB
  2. 2. WinRM

Win 上可以装 Openssh Server,之前试了可以连进去。不过 Win 原生有远程的一些命令可以使用,通常没必要使用 ssh。

以下所有说明基于标准的域环境。

RSAT 主要涉及到使用 IPC (进程间通信) Inter-Process Communication

IPC$ (Inter-Process Communication):这是 Windows 的一个隐藏共享,专门用于进程间通信。

RPC/SMB

RPC 是老协议,但是域控到普通机子仍然一直在走 RPC

远程过程调用。它是 Windows NT 时代就存在的基石技术。它的核心思想是:让在一台电脑上运行的程序,能够像调用本地函数一样,去调用另一台电脑上的函数。

走 RPC (Remote Procedure Call) / SMB 的命令:

  • quser / qwinsta(查询用户)
  • logoff(注销用户)
  • sc(服务控制)
  • services.msc(远程连接服务控制台)
  • PsExec(虽然它利用 SMB 管道,但本质依赖 RPC/DCOM 机制)

注意 SMB 是 RPC 的“载体”,也负责 组策略 (Group Policy) 的分发。

示例命令(远程注销用户登录,用于桌面卡死,无法远程)

1
2
3
4
5
6
7
8
qwinsta /server:<pcname>
会话名 用户名 ID 状态 类型 设备
services 0 断开
console 3 已连接
rdp-tcp#0 xx 4 运行中
rdp-tcp 65536 侦听

logoff 4 /server:<pcname>

WinRM

Windows 远程管理。它是微软对 WS-Management 协议的实现。这是一种基于 Web 标准(SOAP/XML)的协议。

WinRM 并不是为了完全替代 RPC 而生的,它只是为了“替代 RPC 在远程管理领域的角色”。(协议开销更大,历史包袱与生态)

WinRM 只使用两个端口: TCP 5985 (HTTP), TCP 5986 (HTTPS)

虽然默认端口叫 HTTP,但在域环境中,WinRM 的 Payload(负载数据)是经过 Kerberos 密钥加密的。它不是明文传输。

如果需要更高安全性(如通过互联网管理),可以配置 SSL 证书开启 HTTPS。

WinRM 可以通过配置(JEA - Just Enough Administration)限制远程用户只能运行特定的几条命令,而 RPC 这种控制很难实现。

走 WinRM (Windows Remote Management) 的命令:

  • Invoke-Command
  • Enter-PSSession
  • 所有带 -ComputerName 参数且非 WMI/DCOM 实现的 PowerShell Cmdlet。

示例命令(重启服务)

1
Invoke-Command -ComputerName <pcname> -ScriptBlock { Restart-Service TermService -Force }

在 CMD 时代,微软专门提供了一个基于 WinRM 协议的命令行工具,叫做 winrs (Windows Remote Shell)。但是因为返回值以及其他一些功能深度上的问题,一般还是建议 Powershell

打赏
打赏提示信息
分享
分享提示信息